package com.crm.service.customerManager;

import com.crm.model.qo.memberManager.MonthDealCustomerQO;
import com.crm.model.qo.memberManager.MonthNewMemberQO;
import com.crm.model.vo.customerManager.NewSingleMemberStatisticsVO;

import java.util.List;

/**
 * @author luojie
 * @date 2021/5/25 13:37
 */
public interface NewMemberAnalyseDbService {

    /**
     * 获取新增会员数
     *
     * @param companyId 公司id
     * @param yearMonth 年月
     * @return
     */
    long getNewMemberMonthlyStatistics(String companyId, String yearMonth);

    /**
     * 按月统计每月新增会员数
     *
     * @param companyId 公司Id
     * @param startDate 开始日期
     * @param endDate   结束日期
     * @return 每月新增统计
     */
    List<MonthNewMemberQO> selectMemberEveryMonthlyStatistics(String companyId, String startDate, String endDate);

    /**
     * 成交客户数
     *
     * @param companyId 公司id
     * @param yearMonth 年月
     * @return
     */
    long getDealCustomersNumber(String companyId, String yearMonth);

    /**
     * 成交客户数
     */
    List<MonthDealCustomerQO> getEveryMonthDealCustomersNumber(String companyId, String startDate, String endDate);

    /**
     * 单品客户会员统计
     *
     * @param yearMonth
     * @return
     */
    List<NewSingleMemberStatisticsVO> getNewSingleMemberStatistics(String yearMonth, String companyId);

    /**
     * 单品客户会员统计
     *
     * @param yearMonth
     * @return
     */
    List<NewSingleMemberStatisticsVO> selectNewSingleMemberStatisticsByContract(String yearMonth, String companyId, String contractType);

    /***
     * @Description:
     * @Param:
     * @Author: luojie
     * @Date: 2021/5/26 16:09
     */
    long selectThisMonthPercentageQuotaStatistics(String yearMonth, String companyId, String contractType);
}
